# -*- coding: utf-8 -*-
import sys
from comment.utils.aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from comment.utils.aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT
from comment.utils import const

"""
短信业务调用接口示例，版本号：v20170525

Created on 2017-06-12

"""

# 注意：不要更改
# REGION = "cn-hangzhou"
REGION = "cn-shanghai"
# PRODUCT_NAME = "Dysmsapi"
# DOMAIN = "dysmsapi.aliyuncs.com"

acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
# region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)

"""
phone_numbers:手机号
sign_name:签名
template_code:模板签名
"""
# 签名
sign_name = ''
# 模板参数
template_code = ''


def send_sms(phone, code):
    business_id = uuid.uuid1()
    smsRequest = SendSmsRequest.SendSmsRequest()
    # 申请的短信模板编码,必填
    smsRequest.set_TemplateCode(template_code)

    # 短信模板变量参数
    if code is not None:
        params = "{\"code\":\"+ " + code + " + }"
        smsRequest.set_TemplateParam(params)

        # 设置业务请求流水号，必填。
        smsRequest.set_OutId(business_id)

        # 短信签名
        smsRequest.set_SignName(sign_name)

        # 数据提交方式
        # smsRequest.set_method(MT.POST)

        # 数据提交格式
        # smsRequest.set_accept_format(FT.JSON)

        # 短信发送的号码列表，必填。
        smsRequest.set_PhoneNumbers(phone)

        # 调用短信发送接口，返回json
        smsResponse = acs_client.do_action_with_exception(smsRequest)

        # TODO 业务处理

    return smsResponse.decode('utf-8')


if __name__ == '__main__':
    # params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'
    print(send_sms("13080553769", '123456'))
